<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      //创建一个新的构造函数
      function Person(uname) {
        this.uname = uname;
      }
      //将其进行实例化
      const lzd = new Person();
      //实例对象的__proto__会指向构造函数Person的原型对象（Person.prototype）
      console.log(lzd.__proto__ === Person.prototype); // true
      //原型对象上拥有constructor方法可以指回构造函数
      console.log(Person.prototype.constructor === Person); // true
      //Person.prototype的__proto__会指向它的上级 Object.prototype
      console.log(Person.prototype.__proto__ === Object.prototype); //true
      //Object.prototype 拥有constructor方法可以指回它的构造函数
      console.log(Object.prototype.constructor === Object); //true
      //Object 构造函数上也拥有 prototype 指向 Object.prototype
      console.log(Object.prototype);
      //Object.prototype 拥有的 __proto__属性指向最顶层 返回 NUll
      console.log(Object.prototype.__proto__); // Null
    </script>
  </body>
</html>
